第一章,先來簡單的介紹一下正規化表示法。不熟悉的朋友別以為 Regular Expression 又是一種新的程式語言,其實他由來已久,只是一種用以表示資料樣式的"語言"。
Regular Expression,正規化表示法是一種用來描述文字樣式(pattern)的方法,他有一定的規則,適用在多種支援的程式語言中,如 Perl、Java、JavaScript、Python、Ruby 等等。Regular Expression 最常用來在文件中進行搜尋、置換特定文字樣式等編輯動作。
譬如說你想要在一大串名單中找出每個人的 E-mail,就可以運用 Regular Expression 的技巧。因為E-mail 有一個特定的樣式,一、它由英數與特定符號所組成,二、中間必定含有 @ 符號,在 @ 符號左邊的為收件者名稱;右邊的為收件位址,三、收件位址中含有至少一個 . 符號,而這三項規則就是他的樣式。譬如:asd@asd.asd, asd123@qwe.zx 就是一個合法的 E-mail 位址(合法/合乎規則的 E-mail 位址並不代表就能用來收信,E-mail 位址是否有效是 DNS 的工作了)。
如何! 是不是很有趣呀! 但至於 E-mail 的 Regular Expression 要怎麼寫? 就先等我們在下回介紹完 Regular Expression 的基本語法後再來詳述了。
補充一下:
以上的 E-mail 規則並不是最嚴謹的。我們假設文件中的 E-mail 位址都是有效的,並沒有人故意搗亂。更嚴謹的 E-mail 樣是有規定收信位址欄位的區塊(由 . 所分隔)介於2到4之間;位址欄中除了第一區塊,其餘不允許數字與符號;收件人與位址的所有欄位都必須以英文字母做為開頭,大小寫無關;特殊符號限定只接受 . - _ % 等等。
Regular Expression的天書寫法,的確蠻有趣,
但是Regular Expression是怎樣的情況才比較會需要用到呢?
會用Regular Expression的人,與不會用的人比較起來,有什麼好處呢?
有實例應用也許會更有趣吧!